package collection;

import java.util.ArrayList;
import java.util.Collection;

/**
 * 测试集合toString与equals方法对集合操作的影响
 */
public class CollectionDemo2 {
    public static void main(String[] args) {
        Collection c = new ArrayList();
        c.add(new Point(1,2));
        c.add(new Point(3,4));
        c.add(new Point(5,6));
        c.add(new Point(7,8));
        c.add(new Point(1,2));
        /*
            集合重写了toString方法，返回的字符串格式:
            [元素1.toString(), 元素2.toString(), 元素3.toString(), ....]
         */
        System.out.println(c);

        Point p = new Point(1,2);
        /*
            contains:包含
            boolean contains(Object o)
            判断集合中是否包含指定的元素
            判断包含的逻辑是依靠元素的equals方法，这意味着如果集合中某个元素
            与给定元素equals比较为true则集合认为包含该元素
         */
        boolean contains = c.contains(p);
        System.out.println("是否包含p:"+contains);

        /*
            remove:移除
            boolean remove(Object o)
            移除集合中指定的元素
            移除的逻辑是依靠元素的equals方法，集合会将内部元素陆续与给定
            元素进行equals比较，如果为true则删除该元素并不再继续遍历。这
            意味着重复元素仅删除一个。
         */
        c.remove(p);
        System.out.println(c);
    }
}
